#include<iostream>
using namespace std;
int N = 10e9;
void make_mst(int matrix[][200], int cur, int mst[][200], int n)
{
	
	int i = 0;
	int min = N;
	int mini = 0;
	for (i = 1; i <= n; i++)
	{
		if (matrix[cur][i] != 0)
		{
			if (mst[0][i] == 0)
			{
				if (mst[2][i] > matrix[cur][i])
				{
					mst[1][i] = cur;
					mst[2][i] = matrix[cur][i];
					if (mst[2][i] < min)
					{
						min = mst[2][i];
						mini = i;
					}
				}
				else if (mst[2][cur] > matrix[cur][i])
				{
					mst[1][cur] = i;
					mst[2][cur] = matrix[cur][i];
					
				}
			}


		}
	}
	if (mini != 0)
	{
		mst[0][mini] = 1;
		make_mst(matrix, mini, mst, n);
	}
}

void dfs(int m[][200], int visited[][200], int i, int n)
{
	for (int j = 1; j <= n; j++)
	{
		if (m[i][j] != 0 && visited[i][j] == 0)
		{
			cout << i << '-' << j << ':' << m[i][j] << endl;
			visited[i][j] = 1; visited[j][i] = 1;
			dfs(m, visited, j, n);
		}
	}
}
int main()
{
	int n, k;
	int matrix[200][200] = { 0 };
	int m2[200][200] = { 0 };
	int mst[3][200] = { 0 };
	int visit[200][200] = { 0 };
	cin >> n >> k;
	int i = 0;
	for (i = 1; i <= n; i++)
	{
		mst[2][i] = N;
	}
	while (k--)
	{
		int i, j,w;
		cin >> i >> j >> w;
		matrix[i][j] = w;
		matrix[j][i] = w;
	//cout << i << ' ' << j << ' ' << w << endl;
	}
	int sum = 0;
	for (i = 1; i <= n; i++)
	{
		if (mst[0][i] == 0)
		{
			mst[0][i] = 1;

			make_mst(matrix, i, mst, n);
		}
	}for (i = 2; i <= n; i++)
	{
		int s1 = mst[1][i];
		m2[i][s1] = mst[2][i];
		m2[s1][i] = mst[2][i];
		sum += mst[2][i];
	}
	//for (i = 1; i <= n; i++)
	//{
	//	for (int j = 1; j <= n; j++)
	//	{
	//		cout << m2[i][j] << ' ';
	//	}
	//	cout << endl;
	//}
	dfs(m2, visit, 1, n);
	//int sum = 0;
	//for (i = 1; i <= n; i++)
	//{
	//	
	//		int j = 1;
	//		for (j; j <= n; j++)
	//		{
	//			if (m2[i][j] != 0)
	//			{
	//				cout << i << '-' << j << ':' << m2[i][j]<<endl;
	//				m2[i][j] = 0;
	//				m2[j][i] = 0;
	//				sum += m2[i][j];
	//				break;
	//			}
	//		}
	//	
	//}
	cout << sum;
}